package com.hina.rec.application.service.system;


import com.hina.rec.common.model.IdReq;
import com.hina.rec.endpoint.req.system.MenuSaveReq;
import com.hina.rec.endpoint.req.system.MenuUpdateReq;
import com.hina.rec.endpoint.res.system.MenuRes;
import com.hina.rec.endpoint.res.system.MenuTreeRes;

import java.util.List;

/**
 * 菜单 Service接口
 *
 * @author liaosp
 * @date 2024-01-10
 */
public interface MenuService {

    /**
     * 创建菜单
     *
     * @param req 菜单创建请求
     * @return 是否创建成功
     */
    boolean save(MenuSaveReq req);

    /**
     * 更新菜单
     *
     * @param req 菜单更新请求
     * @return 是否更新成功
     */
    boolean update(MenuUpdateReq req);

    /**
     * 删除菜单
     *
     * @param id 菜单ID
     * @return 是否删除成功
     */
    boolean delete(Integer id);

    /**
     * 获取菜单列表
     *
     * @return 菜单列表
     */
    List<MenuRes> list();

    /**
     * 获取菜单详情
     *
     * @param req 菜单ID
     * @return 菜单详情
     */
    MenuRes detail(IdReq req);

    /**
     * 获取菜单树
     *
     * @return 菜单树列表
     */
    List<MenuTreeRes> tree();
}